/**
 * 复制指令
 * 使用方式 v-copy="data"
 * @Prop data 需要复制的内容
 * @modifiers noinfo 不需要message提示
 */
import Vue from 'vue'
import Clipboard from 'clipboard-js'
import { Message } from 'element-ui'
const fun = (el, binding) => {
  const data = binding.value + ''
  const modifiers = binding.modifiers
  el.onclick = (e) => {
    if (modifiers.prevent) {
      e.preventDefault()
    }
    if (modifiers.stop) {
      e.stopPropagation()
    }
    // console.info(`🔉:使用指令复制文字[${data}]`)
    Clipboard.copy(data).then(() => {
      if (modifiers.noinfo) {
        console.log('静默复制')
        return
      }
      Message.success('复制成功')
    }).catch((error) => {
      console.log(error)
      if (modifiers.noinfo) {
        console.log('静默复制')
        return
      }
      Message.error('复制失败')
    })
  }
}

const copyDriective = {
  bind: fun,
  update: fun
}

Vue.directive('copy', copyDriective)
